const notifier = require('node-notifier')
const { app, BrowserWindow, ipcMain, Menu, Tray, screen } = require('electron')
const remote = require('@electron/remote/main');
const path = require('path')
remote.initialize();
const modules = require('./hotUpdate.js');

// const NODE_ENV = true // 打包时注释掉
const NODE_ENV = false // 开发时注释掉
// 下面监听会多次触发，定义一个flag
// let flag = true
// 获取版本号并打印
// console.log(app.getVersion())
// 设置版本号
// app.setVersion('1.0.9');
// 获取版本号并打印
// console.log(app.getVersion())
ipcMain.on('getVersion', (event, message) => {
  modules.iceGetVersion().then(res => {
    event.reply('emitVersion',res)
  })
})
ipcMain.on('hotUpdate', (event, message) => {
  if(!app.isPackaged) return // 如果是开发版不更新
  // event.reply('isUpdate', true)
  // if (flag) {
  // flag = false
  // console.log(event) // event对象
  // console.log(message) // ipcRenderer.send的第二个参数--消息
  modules.hotUpdate().then(res => {
    // console.log(res)
    event.reply('isUpdate', res)
    // flag = true
  })
  // }
})
ipcMain.on('toUpdate', (event, message) => {
  // console.log(event) // event对象
  // console.log(message) // ipcRenderer.send的第二个参数--消息
  modules.downLoad().then(res => {
    event.reply('downloadResult', res)
  }).catch(err => {
    event.reply('downloadResult', err)
  })
})

let win = null
function init_vue_app_login() {
  win = new BrowserWindow({
    // width: screen.getPrimaryDisplay().workAreaSize.width,
    // height: screen.getPrimaryDisplay().workAreaSize.height,
    width: 1400,
    height: 900,
    fullscreen: false, // 默认全屏
    frame: false, // 无边框窗口
    transparent: false, // 窗口透明
    // backgroundColor: '#00000000', // 背景色（10 透明度，000000 色值）
    webPreferences: {
      enableRemoteModule: true,
      nodeIntegration: true,
      contextIsolation: false,
      // 禁用同源策略，允许跨域
      webSecurity: false,
      experimentalFeatures: true
    }
  });
  // 阻止用户右击任务栏，点击关闭窗口事件
  win.on('close', function (event) {
    win.hide()
    event.preventDefault();
  });
  win.show();
  if (NODE_ENV) {
    // 开发者调试工具
    win.webContents.openDevTools()
  }
  win.loadURL(
    NODE_ENV ?
      "http://localhost:5173/"
      : `file://${path.join(__dirname, '../dist/index.html')}`
  );
  // console.log(`file://${path.join(__dirname, '../dist/index.html')}`);
  remote.enable(win.webContents);
}

app.whenReady().then(() => {
  // var ret = globalShortcut.register('ctrl+F12', function () {
  //     win.webContents.openDevTools()
  //     ipcRenderer.send('open-devtools')
  // })
  const trayImg = NODE_ENV ?
    `${path.join(__dirname, '../public/tray.png')}`
    : `${path.join(path.dirname(app.getPath('exe')), '/resources/public/tray.png')}`
  const tray = new Tray(trayImg)
  tray.setToolTip(`快手小店  辅助工具`)
  const contextMenu = Menu.buildFromTemplate([
    // {
    //   label: process.versions.node, click: function () {
    //     win.maximize()
    //   }
    // },
    // {
    //   label: process.versions.electron, click: function () {
    //     win.minimize()
    //   }
    // },
    // {
    //   label: process.versions.modules, click: function () {
    //     win.restore()
    //   }
    // },
    {
      label: '关闭', click: function () {
        win.hide()
      }
    },
    {
      label: '重启', click: function () {
        app.relaunch({
          args: process.argv.slice(1)
        });
        app.exit(0);
      }
    },
    {
      label: NODE_ENV ? '退出' : '不可退出', click: function () {
        if (NODE_ENV) {
          win.destroy()
          app.quit()
        }
      }
    }
  ])

  tray.setContextMenu(contextMenu)
  // 点击托盘图标，显示主窗口
  tray.on("click", () => {
    win.show();
  })
  // //双击打开应用
  tray.on('double-click', () => {
    win.show()
  })
  init_vue_app_login()
  // win.setIgnoreMouseEvents(true) // 鼠标穿透，如果设置开机自启，这里也就没有意义了 //不知道以前注释什么意思，重新注释，就是鼠标穿透
  win.show(); // 1.先显示窗口
  // win.maximize(); // 2.在最大化（顺序一定要对）
  // win.setSkipTaskbar(true) // 无任务栏，无托盘，只在进程中
})
app.setLoginItemSettings({
  // 设置为true注册开机自起
  openAtLogin: true,
  openAsHidden: true,  //macOs
  args: ["--openAsHidden", '--openAtLogin'],
});